The present invention relates in general to a method and system for data processing, and in particular, to a method and system for processing motion data and/or button data to be input to a computer from a pointing device.
Graphical user interfaces, or xe2x80x9cGUIsxe2x80x9d as they are often designated, are a common and popular feature of computers, especially personal computers (PCs). One of the many advantages of GUIS is that they allow a user to enter commands by selecting and manipulating graphical display elements, such as icons, usually with a pointing device, such as a mouse. A mouse is an input device which, when moved over a surface, moves a mouse pointer across the computer display in a corresponding manner. Typically, a mouse has one to three buttons which when pressed, generate to the computer an input relating the user and the location of the mouse on the computer display. xe2x80x9cClickingxe2x80x9d will be used herein to refer to the pressing and releasing of a mouse button, usually the left mouse button, unless otherwise specified. The icons of a GUI are designed to behave in a manner similar to the objects they represent. The Apple Macintosh(trademark) user interface, Microsoft Windows(trademark) operating environment, and UNIX X-Windows(trademark) are common and very popular examples of GUIs, illustrating that the advantages of GUIs over conventional text-based user interfaces are widely recognized.
Clearly, GUIs significantly reduce the amount of information that a user must recall in order to effectively use the computer. For example, instead of having to remember the name of an application program and navigate by manual typing, the user can search files and launch applications in a more intuitive manner, such as by clicking on well organized buttons and icons. As a result of the ever-increasing popularity of GUIs, a variety of different means for organizing and navigating through the various applications and other programs have been developed.
Organizing means, as referred to above, might be a drop-down or pull-down menu. Drop-down menus are activated by moving the mouse pointer over an active area on a menu. While there can be variations on the menu theme, one such embodiment requires a user to click a button when the mouse is positioned over an active menu. When the application controlling the menu receives the position information of the mouse pointer and the click from the user, the active menu is expanded or dropped down uncovering the menu options of the particular menu type. From those options a user is required to move the mouse to a specific option and click on that option.
While the drop-down menu saves desktop space by only expanding a menu upon a specific action by the user, it has a disadvantage of being somewhat cumbersome for those who do not possess the manual dexterity needed to accurately control the mouse pointer on the screen. Because the dropdown menu, or expanded menu options, stays active only when the pointer is located over the hot spot created by the drop-down menu, if the user allows the pointer to move off of that drop-down menu, the menu automatically closes and the user is forced to reinitiate the drop-down menu procedure described above.
Various methods and apparatus currently exist for allowing a user to control certain aspects of computer mouse operation. For example, the Windows interface enables a user to access a mouse dialog box whereby the user can adjust the tracking speed, which refers to the speed at which the mouse pointer moves across the display, and double click speed, which refers to the rate at which Windows recognizes double clicks of the mouse. One feature of the mouse that is not controllable using the Windows GUI is the responsiveness of the mouse pointer displayed on the display to mouse movement. Clearly, such a feature would be beneficial for use in connection with any type of user interface, but would be especially useful in connection with GUIs having small buttons and selectors, such as the dropdown menu interface described above. Providing means by which a user can control the responsiveness of the mouse pointer provides the user with the capability to prevent, or at least reduce the possibility, of an overshoot. It will be recognized, therefore, that this feature would be especially beneficial in cases where the user is a small child or an older person, neither of whom typically have the manual dexterity necessary to accurately control a mouse or other input device and hence the position of the pointer on the display.
There are a set of disabilities that make the regular operation of a computer difficult, if not impossible. Examples of this are trembling hands/fingers, and numb hands/fingers. As our population grows older and becomes increasingly dependant on computers, this will become more of an issue. These disabilities can result in many difficulties, such as positioning the cursor and use of the mouse buttons. These problems further may include unintended button clicks, unintended movement of the mouse while intentionally clicking, and invalid double-clicks.
Although the processes described hereinbelow could conceivably be added to mouse driver software installed in a PC, this software is highly dependent on the operating system, thus many drivers would need to be written and maintained. Cheng (U.S. Pat. No. 5,661,502) describes such a device driver filter intended to reduce cursor overshoot and related problems for non-handicapped individuals, but this only works for the system it is designed for. In some cases, it may not be feasible to place the filter in the device driver, for example if the operating system does not provide a stable time base for sampling the mouse data. Further, access to, for example, a PC other than the user""s PC may be difficult or impossible if it requires installing special drivers and adjusting them to a particular user""s needs.
The solution for this is typically the enablement of what are called Slow Keys or Bouncy Keys for the keyboard input device (termed xe2x80x9cMouse Keysxe2x80x9d); that is, enablement of the number-pad to function as a mouse input. Since it is still part of the keyboard, no tremble occurs in the mouse movement because it is generated from a key stroke. One disadvantage of this solution is that it is cumbersome in use, particularly for a disabled person.
Therefore, what is needed is a mechanism for enabling a user to better control the responsiveness of a mouse.
The shortcomings of the prior art are overcome and additional advantages are provided through the provision in one aspect of a method of processing variable data produced by a pointing device for input to a computer. The method includes: ascertaining user inputted variable data produced by the pointing device; performing external to the computer at least one of motion data processing or button data processing on the user inputted variable data to obtain modified user inputted variable data; formatting if necessary the modified user inputted variable data to a standard format used for communicating data from the pointing device to the computer; and transmitting the formatted, modified user inputted variable data to the computer.
In a further aspect, a method of processing variable data produced by a pointing device for input to a computer is provided which includes: receiving user inputted variable data produced by the pointing device; performing external and transparent to the computer at least one of motion data processing or button data processing on the user inputted variable data to obtain modified user inputted variable data, wherein the motion data processing or button data processing includes processing to accomplish at least one of (1) filtering to reduce coordinate deviations from a desired path caused by unintended movements of the pointing device, (2) removal of unintentional rapid button transitions of the pointing device, (3) look-back processing to correct for unintentional pointer coordinate motion induced by operation of buttons of the pointing device, or (4) detection of button double-clicks using relaxed requirements on motion and timing; formatting, if necessary, the modified user inputted variable data to a standard format used for communicating data from the pointing device to the computer; and transmitting the formatted, modified user inputted variable data to the computer.
System and computer program products corresponding to the above-summarized methods are also described and claimed herein.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.